/**
 * Created by Administrator on 2017/11/28.
 */
myApp.controller('formBoxController',function ($scope,$rootScope,$element,$transclude) {
	
	//事件分开监听
	$scope.$on('showFormBox',function (event,data) {
		$element.css({'z-index':200}).animate({'opacity':1},500)
    })
	
    $scope.$on('changeForm',function (event,data) {
    	$scope.title=data.title;
    })
    
    $scope.$on('confirmForm',function (event,data) {
    	$scope.confirm=data.func;
    })
    
    //确认框 监听
    $scope.$on('changeAddFormBox',function (event,data) {
    	$element.css({'z-index':200}).animate({'opacity':1},500)
    	$scope.title=data.title;
    	$scope.confirm=data.func;
	    if($scope.colorSelect){
		    $element.find('.formBox').removeClass('prompt');
		    $element.find('.formBox>.title').removeClass('prompt-title');
		    $element.find('.formBox>.cancel').removeClass('prompt-cancel');
		    $element.find('.formBox>.sure').removeClass('prompt-sure');
		    $scope.colorSelect=false;
	    }
	    $element.find('.main-form').empty();
	    $transclude($scope,function(clone){
		    $element.find('.main-form').append(clone);
	    });
    })
    
    $scope.$on('changeEditFormBox',function (event,data) {
    	$element.css({'z-index':200}).animate({'opacity':1},500)
    	$scope.title=data.title;
//    	$scope.formData = data.editItem;
    	$scope.extendsData=data.extendsData;
    	$scope.confirm=data.func;
	    if($scope.colorSelect){
		    $element.find('.formBox').removeClass('prompt');
		    $element.find('.formBox>.title').removeClass('prompt-title');
		    $element.find('.formBox>.cancel').removeClass('prompt-cancel');
		    $element.find('.formBox>.sure').removeClass('prompt-sure');
		    $scope.colorSelect=false;
	    }
	    $element.find('.main-form').empty();
	    $transclude($scope,function(clone){
		    $element.find('.main-form').append(clone);
	    });
    })
	$scope.$on('changeDeleteFormBox',function (event,data) {
		$element.css({'z-index':200}).animate({'opacity':1},500)
		$scope.title=data.title;
		$scope.confirm=data.func;
		if($scope.colorSelect){
			$element.find('.formBox').removeClass('prompt');
			$element.find('.formBox>.title').removeClass('prompt-title');
			$element.find('.formBox>.cancel').removeClass('prompt-cancel');
			$element.find('.formBox>.sure').removeClass('prompt-sure');
			$scope.colorSelect=false;
		}
		$element.find('.main-form').empty();
		$element.find('.main-form').append('<li>内容描述内容描述内容描述内容描述内容描述内容描述内容描述内容描述内容描述内容描述</li> ');
	})
	$scope.$on('changeCancelDeleteFormBox',function (event,data) {
		$element.css({'z-index':200}).animate({'opacity':1},500)
		$scope.title=data.title;
		$scope.confirm=data.func;
		$element.find('.main-form').empty();
		$scope.colorSelect=true;
		$element.find('.formBox').addClass('prompt');
		$element.find('.formBox>.title').addClass('prompt-title');
		$element.find('.formBox>.cancel').addClass('prompt-cancel');
		$element.find('.formBox>.sure').addClass('prompt-sure');
		$element.find('.main-form').append('<li><img src="images/attention.png" style="width: 5.25vh;height:5.25vh;float: left"><span style="margin-left: 7vh;width: auto;line-height: 5.25vh">您未选中需要删除的项</span></li> ');
	})
	
	
/*	if($rootScope.systemHeight<=768){
        /!*计算这个模块的宽度和高度*!/
        $scope.addUserStyle={
            'width':$rootScope.systemWidth-340+'px',
            'height':($rootScope.systemHeight-260)*0.9+80+'px'
        }
    }
    else {
        /!*计算这个模块的宽度和高度*!/
        $scope.addUserStyle={
            'width':$rootScope.systemWidth-340+'px',
            'height':($rootScope.systemHeight-260)*0.9+100+'px'
        }
    }*/

    /*关闭的图片*/
    $scope.closeImg={'img':'images/close-default.png','defaultImg':'images/close-default.png','downImg':'images/close-btndown.png','hoverImg':'images/close-hover.png'};
    
    $transclude($scope,function(clone){
    	$element.find('.main-form').append(clone);
    });

});

myApp.directive('formBox',function(){
    var obj = {
        //指令在DOM中以什么形式声明; "E"=元素,"A"=属性,"C"=class,"M"=注释 默认为"A"
        restrict : "EA",
        //执行的优先级
//        priority : 0 ,
        //true=优先级低于此指令的不生效 false=均生效
//        terminal: false,
        //代表所链接HTML文件的字符串地址,也可以是跟template一样的函数
        templateUrl :"html/management/formBox.html",
        //true=显示原始标签,false=不显示原始标签
        replace : true,
        transclude:true,
        //false=继承父作用域,
        //true=表示继承父作用域，并创建自己的作用域（子作用域）,
        // {}=表示创建一个全新的隔离作用域,
        // 内部属性
        // "@" 绑定一个局部 scope 属性到当前 dom 节点的属性值 (单向绑定,向内影响)
        // "=" 通过 directive 的 attr 属性的值在局部 scope 的属性和父 scope 属性名之间建立双向绑定 (双向绑定,同时影响)
        // "&"  提供一种方式执行一个表达式在父 scope 的上下文中。如果没有指定 attr 名称，则属性名称为相同的本地名称                      (绑定事件,事件改变是可以是directive外的改变,内往外传)
//        scope : {
//        	formData:'=',
//        	extendsData:'='
//        },
        scope : true,
        //可以是字符串或者函数 (公共逻辑)
        //字符串可以指定控制器名称
        //函数为自己设定控制器逻辑
        controller : "formBoxController",
        link:function (scope,Element,Attrs) {
        	Element.find(".sure").on("click",function(){
        		scope.confirm();
//        		console.log(scope.formData);
        		Element.animate({'opacity':0,'z-index':-10},500);
        	});
        	Element.find(".cancel,.close-btn").on("click",function(){
//        		scope.cancelClick();
        		Element.animate({'opacity':0,'z-index':-10},500);
        	});
        	
        }
    };
    return obj;

});


